home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / sbin / depscan.sh < prev    next >
Linux/UNIX/POSIX Shell Script  |  2006-04-25  |  2KB  |  90 lines

  1. #!/bin/bash
  2. # Copyright 1999-2004 Gentoo Foundation
  3. # Distributed under the terms of the GNU General Public License v2
  4. # $Header$
  5.  
  6. source /etc/init.d/functions.sh
  7.  
  8. mysvcdir="${svcdir}"
  9. update=false
  10.  
  11. while [[ -n $1 ]] ; do
  12.     case "$1" in
  13.         --debug|-d)
  14.             set -x
  15.             ;;
  16.         --svcdir|-s)
  17.             if [[ -z $2 || $2 == -* ]] ; then
  18.                 eerror "No svcdir specified"
  19.             else
  20.                 shift
  21.                 mysvcdir="$1"
  22.             fi
  23.             ;;
  24.         --update|-u)
  25.             update=true
  26.             ;;
  27.     esac
  28.     shift
  29. done
  30.  
  31. if [[ ! -d ${mysvcdir} ]] ; then
  32.     if ! mkdir -p -m 0755 "${mysvcdir}" 2>/dev/null ; then
  33.         eerror "Could not create needed directory '${mysvcdir}'!"
  34.     fi
  35. fi
  36.  
  37. for x in softscripts snapshot options started ; do
  38.     if [[ ! -d "${mysvcdir}/${x}" ]] ; then
  39.         if ! mkdir -p -m 0755 "${mysvcdir}/${x}" 2>/dev/null ; then
  40.             eerror "Could not create needed directory '${mysvcdir}/${x}'!"
  41.         fi
  42.     fi
  43. done
  44.  
  45. # Only update if files have actually changed
  46. if ! ${update} ; then
  47.     for config in /etc/conf.d /etc/init.d /etc/rc.conf ; do
  48.         if [[ ${config} -nt "${mysvcdir}/depcache" ]] ; then
  49.             update=true    
  50.             break
  51.         fi
  52.     done
  53. fi
  54.  
  55. ! ${update} && exit 0
  56.  
  57. ebegin "Caching service dependencies"
  58.  
  59. # Clean out the non volitile directories ...
  60. rm -rf "${mysvcdir}"/dep{cache,tree} "${mysvcdir}"/{broken,snapshot}/*
  61.  
  62. retval=0
  63. SVCDIR="${mysvcdir}"
  64. DEPTYPES="${deptypes}"
  65. ORDTYPES="${ordtypes}"
  66.  
  67. export SVCDIR DEPTYPES ORDTYPES
  68.  
  69. cd /etc/init.d
  70.  
  71. /bin/gawk \
  72.     -f /lib/rcscripts/awk/functions.awk \
  73.     -f /lib/rcscripts/awk/cachedepends.awk || \
  74.     retval=1
  75.  
  76. bash "${mysvcdir}/depcache" | \
  77. /bin/gawk \
  78.     -f /lib/rcscripts/awk/functions.awk \
  79.     -f /lib/rcscripts/awk/gendepends.awk || \
  80.     retval=1
  81.  
  82. touch "${mysvcdir}"/dep{cache,tree}
  83. chmod 0644 "${mysvcdir}"/dep{cache,tree}
  84.  
  85. eend ${retval} "Failed to cache service dependencies"
  86.  
  87. exit ${retval}
  88.  
  89. # vim:ts=4
  90.